#ifndef __IDEATESTVECTORSSET1__
#define __IDEATESTVECTORSSET1__

#include "../plainkeycipher.h"

// Test vectors from <https://www.cosic.esat.kuleuven.be/nessie/testvectors/bc/idea/Idea-128-64.verified.test-vectors>

const std::vector <PlainKeyCipher> IDEA_TEST_VECTORS_SET_1 = {
    std::make_tuple("0000000000000000", "80000000000000000000000000000000", "b1f5f7f87901370f"),
    std::make_tuple("0000000000000000", "40000000000000000000000000000000", "b3927dffb6358626"),
    std::make_tuple("0000000000000000", "20000000000000000000000000000000", "e987e0029fb99785"),
    std::make_tuple("0000000000000000", "10000000000000000000000000000000", "754a03ce08db7daa"),
    std::make_tuple("0000000000000000", "08000000000000000000000000000000", "f015f9fb0cfc7e1c"),
    std::make_tuple("0000000000000000", "04000000000000000000000000000000", "69c9fe6007b8fcdf"),
    std::make_tuple("0000000000000000", "02000000000000000000000000000000", "8da7bc0e63b40dd0"),
    std::make_tuple("0000000000000000", "01000000000000000000000000000000", "2c49bf7de28c666b"),
    std::make_tuple("0000000000000000", "00800000000000000000000000000000", "9a4717e8f935712b"),
    std::make_tuple("0000000000000000", "00400000000000000000000000000000", "90c77c47804bedcc"),
    std::make_tuple("0000000000000000", "00200000000000000000000000000000", "156e976ee8194241"),
    std::make_tuple("0000000000000000", "00100000000000000000000000000000", "168a0ad30485fc27"),
    std::make_tuple("0000000000000000", "00080000000000000000000000000000", "3f3b32602c5b4fed"),
    std::make_tuple("0000000000000000", "00040000000000000000000000000000", "7c282ea23ca3b968"),
    std::make_tuple("0000000000000000", "00020000000000000000000000000000", "13ea33701f98cce5"),
    std::make_tuple("0000000000000000", "00010000000000000000000000000000", "7c92bc91c48f0084"),
    std::make_tuple("0000000000000000", "00008000000000000000000000000000", "95a96731978c1b9a"),
    std::make_tuple("0000000000000000", "00004000000000000000000000000000", "125d24c4e9aba0eb"),
    std::make_tuple("0000000000000000", "00002000000000000000000000000000", "61aca85576c2f0cb"),
    std::make_tuple("0000000000000000", "00001000000000000000000000000000", "1885d2a027fccdc3"),
    std::make_tuple("0000000000000000", "00000800000000000000000000000000", "3e95a27d17961b91"),
    std::make_tuple("0000000000000000", "00000400000000000000000000000000", "1baae3afe3dc73b9"),
    std::make_tuple("0000000000000000", "00000200000000000000000000000000", "ce48f58b50e125e9"),
    std::make_tuple("0000000000000000", "00000100000000000000000000000000", "ce359bdcf1af56c0"),
    std::make_tuple("0000000000000000", "00000080000000000000000000000000", "80960b2aafaba050"),
    std::make_tuple("0000000000000000", "00000040000000000000000000000000", "6a475eb5dee65e05"),
    std::make_tuple("0000000000000000", "00000020000000000000000000000000", "09b03752ca2e76a3"),
    std::make_tuple("0000000000000000", "00000010000000000000000000000000", "8df2ad1153945df8"),
    std::make_tuple("0000000000000000", "00000008000000000000000000000000", "38731680d5611515"),
    std::make_tuple("0000000000000000", "00000004000000000000000000000000", "1b96d7962eee006e"),
    std::make_tuple("0000000000000000", "00000002000000000000000000000000", "b2cf3be70e2ce320"),
    std::make_tuple("0000000000000000", "00000001000000000000000000000000", "4b9f147724732802"),
    std::make_tuple("0000000000000000", "00000000800000000000000000000000", "398bd9a59e9f5ddb"),
    std::make_tuple("0000000000000000", "00000000400000000000000000000000", "bf70e86b86d9e071"),
    std::make_tuple("0000000000000000", "00000000200000000000000000000000", "e8f3d34c32561b8d"),
    std::make_tuple("0000000000000000", "00000000100000000000000000000000", "564d4c9f9f99ef58"),
    std::make_tuple("0000000000000000", "00000000080000000000000000000000", "3fa5dcb6d71577c9"),
    std::make_tuple("0000000000000000", "00000000040000000000000000000000", "f2470b4c18d8206f"),
    std::make_tuple("0000000000000000", "00000000020000000000000000000000", "c838b0b08145e33d"),
    std::make_tuple("0000000000000000", "00000000010000000000000000000000", "e66b4b804d49ffd4"),
    std::make_tuple("0000000000000000", "00000000008000000000000000000000", "849232d009776e88"),
    std::make_tuple("0000000000000000", "00000000004000000000000000000000", "06114f7642747bf2"),
    std::make_tuple("0000000000000000", "00000000002000000000000000000000", "55e436bf83fcc61f"),
    std::make_tuple("0000000000000000", "00000000001000000000000000000000", "afc56e209ffe8e5e"),
    std::make_tuple("0000000000000000", "00000000000800000000000000000000", "1fcd5543ed20219f"),
    std::make_tuple("0000000000000000", "00000000000400000000000000000000", "afd481eeb1dc9798"),
    std::make_tuple("0000000000000000", "00000000000200000000000000000000", "c747245f7c40505e"),
    std::make_tuple("0000000000000000", "00000000000100000000000000000000", "6533869714e1d576"),
    std::make_tuple("0000000000000000", "00000000000080000000000000000000", "ac1d8708af0a37ee"),
    std::make_tuple("0000000000000000", "00000000000040000000000000000000", "6ae43f39abec1634"),
    std::make_tuple("0000000000000000", "00000000000020000000000000000000", "3ca0b0184ce033b0"),
    std::make_tuple("0000000000000000", "00000000000010000000000000000000", "a1fae8b9764179c9"),
    std::make_tuple("0000000000000000", "00000000000008000000000000000000", "34e7fe59d0adceaa"),
    std::make_tuple("0000000000000000", "00000000000004000000000000000000", "3cfb4e3a73cbdfc8"),
    std::make_tuple("0000000000000000", "00000000000002000000000000000000", "e7c34815e4af6944"),
    std::make_tuple("0000000000000000", "00000000000001000000000000000000", "fd4b9074b638862d"),
    std::make_tuple("0000000000000000", "00000000000000800000000000000000", "c1b9f1684fc2ef4b"),
    std::make_tuple("0000000000000000", "00000000000000400000000000000000", "3c90fa06cef23d8e"),
    std::make_tuple("0000000000000000", "00000000000000200000000000000000", "e304438d5c8ff203"),
    std::make_tuple("0000000000000000", "00000000000000100000000000000000", "8002eb809ec28f8a"),
    std::make_tuple("0000000000000000", "00000000000000080000000000000000", "4255f0c54f48c1a9"),
    std::make_tuple("0000000000000000", "00000000000000040000000000000000", "aa553a5dec50e4a4"),
    std::make_tuple("0000000000000000", "00000000000000020000000000000000", "30f1ec7563c810f2"),
    std::make_tuple("0000000000000000", "00000000000000010000000000000000", "b3cdc5ebda6a4fe9"),
    std::make_tuple("0000000000000000", "00000000000000008000000000000000", "fae3fa7b8db08800"),
    std::make_tuple("0000000000000000", "00000000000000004000000000000000", "05207cf4396cc5f4"),
    std::make_tuple("0000000000000000", "00000000000000002000000000000000", "3c6180d320d620b2"),
    std::make_tuple("0000000000000000", "00000000000000001000000000000000", "eee00f6d006ce0a2"),
    std::make_tuple("0000000000000000", "00000000000000000800000000000000", "b040f041c7831740"),
    std::make_tuple("0000000000000000", "00000000000000000400000000000000", "74203c21efc23fa0"),
    std::make_tuple("0000000000000000", "00000000000000000200000000000000", "7f901491cc611ba8"),
    std::make_tuple("0000000000000000", "00000000000000000100000000000000", "edd8c619488123ce"),
    std::make_tuple("0000000000000000", "00000000000000000080000000000000", "fa6603f705135f50"),
    std::make_tuple("0000000000000000", "00000000000000000040000000000000", "64837b43683c68d0"),
    std::make_tuple("0000000000000000", "00000000000000000020000000000000", "dd0a23281e105910"),
    std::make_tuple("0000000000000000", "00000000000000000010000000000000", "fae505f70760e814"),
    std::make_tuple("0000000000000000", "00000000000000000008000000000000", "2f72c7fb1e856d92"),
    std::make_tuple("0000000000000000", "00000000000000000004000000000000", "40463c6c86d5177a"),
    std::make_tuple("0000000000000000", "00000000000000000002000000000000", "9ad2ab3c260084e7"),
    std::make_tuple("0000000000000000", "00000000000000000001000000000000", "cf960fa9248bc228"),
    std::make_tuple("0000000000000000", "00000000000000000000800000000000", "b5803f82c0633f01"),
    std::make_tuple("0000000000000000", "00000000000000000000400000000000", "62da6bb42bc888d0"),
    std::make_tuple("0000000000000000", "00000000000000000000200000000000", "b625f883693ff90b"),
    std::make_tuple("0000000000000000", "00000000000000000000100000000000", "5f385ce04727618f"),
    std::make_tuple("0000000000000000", "00000000000000000000080000000000", "6b391eb5c3cf660c"),
    std::make_tuple("0000000000000000", "00000000000000000000040000000000", "2e5b3366eae2192a"),
    std::make_tuple("0000000000000000", "00000000000000000000020000000000", "587687b9ea5738b9"),
    std::make_tuple("0000000000000000", "00000000000000000000010000000000", "e83c1e95f50b1c45"),
    std::make_tuple("0000000000000000", "00000000000000000000008000000000", "a67559f516391f04"),
    std::make_tuple("0000000000000000", "00000000000000000000004000000000", "2b7012f6afacc4e7"),
    std::make_tuple("0000000000000000", "00000000000000000000002000000000", "90e9c0b1b067bf0c"),
    std::make_tuple("0000000000000000", "00000000000000000000001000000000", "9e25090b7d4ef24e"),
    std::make_tuple("0000000000000000", "00000000000000000000000800000000", "ef62c1109f374aa8"),
    std::make_tuple("0000000000000000", "00000000000000000000000400000000", "1321dfb1caf0175a"),
    std::make_tuple("0000000000000000", "00000000000000000000000200000000", "5f0ccfe5eb0f19a8"),
    std::make_tuple("0000000000000000", "00000000000000000000000100000000", "fcc40014010d617c"),
    std::make_tuple("0000000000000000", "00000000000000000000000080000000", "705d780834a498da"),
    std::make_tuple("0000000000000000", "00000000000000000000000040000000", "9bca7bf025b38a68"),
    std::make_tuple("0000000000000000", "00000000000000000000000020000000", "5cf67d0181cb01c1"),
    std::make_tuple("0000000000000000", "00000000000000000000000010000000", "ecde3d81820381c1"),
    std::make_tuple("0000000000000000", "00000000000000000000000008000000", "44071d0142aa8d00"),
    std::make_tuple("0000000000000000", "00000000000000000000000004000000", "76028e8175574680"),
    std::make_tuple("0000000000000000", "00000000000000000000000002000000", "4e21c741cfb4a340"),
    std::make_tuple("0000000000000000", "00000000000000000000000001000000", "8dd9e3a14d02d1a0"),
    std::make_tuple("0000000000000000", "00000000000000000000000000800000", "c781050dc4110220"),
    std::make_tuple("0000000000000000", "00000000000000000000000000400000", "6dfd0287ec4c0110"),
    std::make_tuple("0000000000000000", "00000000000000000000000000200000", "3b8a017efb61800e"),
    std::make_tuple("0000000000000000", "00000000000000000000000000100000", "a08f7f81ff627fc0"),
    std::make_tuple("0000000000000000", "00000000000000000000000000080000", "00503fc1afb93fe0"),
    std::make_tuple("0000000000000000", "00000000000000000000000000040000", "4c23f3f71bda73fa"),
    std::make_tuple("0000000000000000", "00000000000000000000000000020000", "89181efaa2ebdeff"),
    std::make_tuple("0000000000000000", "00000000000000000000000000010000", "46d371477f33b152"),
    std::make_tuple("0000000000000000", "00000000000000000000000000008000", "be67ac7da294ca7c"),
    std::make_tuple("0000000000000000", "00000000000000000000000000004000", "a02d82caaa53b63b"),
    std::make_tuple("0000000000000000", "00000000000000000000000000002000", "7b3b1bb98486baba"),
    std::make_tuple("0000000000000000", "00000000000000000000000000001000", "fb7a48bb85a599fd"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000800", "c7311f4168c070a8"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000400", "96a6baa8315bf757"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000200", "8c48be46c7bd823d"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000100", "b409c9f9d1b8f72d"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000080", "3cbb5809405ff067"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000040", "7adbfa95852405d8"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000020", "b9e879c7461a07e6"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000010", "5e98be9aa16fd1a8"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000008", "f59d85f90a42b871"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000004", "24853f38c6c7bc3f"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000002", "41518093035e12e9"),
    std::make_tuple("0000000000000000", "00000000000000000000000000000001", "c57adbde27bc26cf"),
};

#endif // __IDEATESTVECTORSSET1__
